package com.unpor.common;

import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.ext.handler.ContextPathHandler;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.template.Engine;
import com.unpor.controller.IndexController;
import com.unpor.interceptor.GlobalInterceptor;
import com.unpor.model.Blog;
import com.unpor.route.AdminRoute;
import com.unpor.route.FrontRoute;

/**
 * Created by benhailong on 2017/7/30.
 */
public class MyConfig extends JFinalConfig {
    @Override
    public void configConstant(Constants constants) {
        constants.setDevMode(true); // 开启开发模式
        // 加载少量必要配置，随后可用PropKit.get(...)获取值
        PropKit.use("a_little_config.txt");



    }
    @Override
    public void configRoute(Routes routes) {
        // 路由分包，调用
        // 路由都放在 com.unpor.route 下面
        routes.add(new FrontRoute());// 调用配置的前端路由文件
        routes.add(new AdminRoute());// 调用后台的配置路由文件


    }
    @Override
    public void configEngine(Engine engine) {

    }

    @Override
    public void configPlugin(Plugins plugins) {

        // 配置C3p0数据库连接池插件
        DruidPlugin druidPlugin = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());
        plugins.add(druidPlugin);

        // 配置ActiveRecord插件
        ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);

        arp.addMapping("t_blog", Blog.class);// 数据库映射，需要加入PluginList之前完成配置
//        arp.addMapping("t_blog","user_id", Blog.class);// 默认主键是id且自增长，否则需要单独配置

        plugins.add(arp);


    }
    @Override
    public void configInterceptor(Interceptors interceptors) {
        // 测试 GlobalInterceptor 拦截器
        interceptors.add(new GlobalInterceptor());// 全局拦截   等价于  addGlobalActionInterceptor
//        interceptors.addGlobalServiceInterceptor();

    }
    @Override
    public void configHandler(Handlers handlers) {
        handlers.add(new ContextPathHandler("ctx"));
    }

    public static void main(String[] args) {
        JFinal.start("src/main/webapp",8080,"/");
    }

    // jfinal 框架启动后，你可以启动你自己的东西
    @Override
    public void afterJFinalStart(){
        System.out.println("启动了afterJFinalStart.....");
    }

}
